package com.example.project.service;

import java.util.List;

import com.example.project.entity.IssueRelation;
import com.example.project.entity.Journal;

/**
 * 问题变更历史主，记录Issue等对象的变更信息Service接口
 * 
 * @author ruoyi
 * @date 2025-09-26
 */
public interface JournalService {

	/**
	 * 查询问题变更历史主，记录Issue等对象的变更信息
	 * 
	 * @param id 问题变更历史主，记录Issue等对象的变更信息主键
	 * @return 问题变更历史主，记录Issue等对象的变更信息
	 */
	public Journal selectJournalsById(Long id);

	/**
	 * 查询问题变更历史主，记录Issue等对象的变更信息列表
	 * 
	 * @param tJournals 问题变更历史主，记录Issue等对象的变更信息
	 * @return 问题变更历史主，记录Issue等对象的变更信息集合
	 */
	public List<Journal> selectJournalsList(Journal tJournals);

	/**
	 * 新增问题变更历史主，记录Issue等对象的变更信息
	 * 
	 * @param tJournals 问题变更历史主，记录Issue等对象的变更信息
	 * @return 结果
	 */
	public int insertJournals(Journal tJournals);

	/**
	 * 修改问题变更历史主，记录Issue等对象的变更信息
	 * 
	 * @param tJournals 问题变更历史主，记录Issue等对象的变更信息
	 * @return 结果
	 */
	public int updateJournals(Journal tJournals);

	/**
	 * 批量删除问题变更历史主，记录Issue等对象的变更信息
	 * 
	 * @param ids 需要删除的问题变更历史主，记录Issue等对象的变更信息主键集合
	 * @return 结果
	 */
	public int deleteJournalsByIds(String ids);

	/**
	 * 删除问题变更历史主，记录Issue等对象的变更信息信息
	 * 
	 * @param id 问题变更历史主，记录Issue等对象的变更信息主键
	 * @return 结果
	 */
	public int deleteJournalsById(Long id);

	public List<Journal> findByJournalizedId(Long journalizedId);

	public Journal getLastJournal(Long id);

	public void createRelationJournal(long issueId, IssueRelation issueRelation);

	/**
	 * 创建删除关联关系的历史记录
	 * 
	 * @param issueId 问题ID
	 * @param issueRelation 关联关系
	 */
	public void createDeleteRelationJournal(long issueId, IssueRelation issueRelation);

}
